1. Field of the Invention
The present invention relates to an improved data processing system. More particularly, the present invention provides customizing a graphical user interface of a host application. Still more particularly, the present invention provides customizing a graphical user interface of a host application in a continuous running mode via dynamic switching with heterogeneous business logic flows.
2. Description of Related Art
The worldwide network of computers commonly known as the “Internet” has seen explosive growth in the last several years. Mainly, this growth has been fueled by the introduction and widespread use of so-called “web browsers,” which enable simple graphical user interface-based access to network servers, which support documents formatted as so-called “web pages.” A browser is a program that is executed on a graphical user interface (GUI) in a client computer. The browser allows a user to seamlessly load documents from a server via the Internet and display them by means of the GUI. These documents are commonly formatted using markup language protocols, such as hypertext markup language (HTML).
The client and the web server typically communicate using hypertext transport protocol (HTTP). However, when a client is accessing sensitive information from a web server, a secure protocol may be used. Hypertext transport protocol secure is the protocol for accessing a secure Web server. Using HTTPS in the uniform resource locator (URL) instead of HTTP directs the message to a secure port number rather than a default Web port. The session is then managed by a security protocol. Secure sockets layer is the leading security protocol on the Internet. When a session is started in SSL, the browser sends its public key to the server so that the server can securely send a secret key to the browser. The browser and server exchange data via secret key encryption during that session.
However, HTTP is a stateless protocol. Therefore, every request from an HTTP client to an HTTP server is a new request and no state is maintained between requests. Conventionally, HTTP cookies are used to maintain a client-side state whereas sessions are used to manage the state information on the server side. A cookie is data created by a web server that is stored on a client computer. A cookie is used to keep track of a user's patterns and preferences and, with the cooperation of the Web browser, is stored within the client computer. Cookies contain a range of URLs for which they are valid. When the browser encounters those URLs again, it sends the appropriate cookies to the Web server.
A session is used to track the activities of a user. For example, a session may be created to allow a user to add items to a “shopping cart” using a plurality of individual requests. A session may also allow a user to use a web interface to search a database. Web interfaces may also be used to control equipment from remote locations. As web interfaces become increasingly popular, the security of sessions used to manage multiple transactions by individual clients becomes exceedingly important. Normally, a session is created on the server side. To associate a session with a user, a random number, referred to as a session identification (ID), is generated and associated with the user. The session ID is sent back to the browser as a cookie or through a URL rewriting mechanism.
An important concept of conducting electronic business (e-business) is to extend the reach of legacy applications to the Internet. Host applications may be customized in an effort to make the host application appear like web applications so that a user who has an Internet connection may access these host applications.
A host application may be customized screen by screen. With this approach, there is a default customization for each host screen. The user may provide further customization by selecting an individual host screen and modify the host screen's graphical user interface (GUI). An advantage of this approach is that the user can present the entire host application to the web very quickly while customizing portions of the host applications selectively and gradually. A disadvantage of this approach is that the user has to recognize all of the customized host screens which make the screen recognition difficult and inefficient. Another problem with this approach is that the customization is screen-based and does not perform like a web application.
Another approach is to use a macro script to automatically drive the host application. The macro script prompts the user for inputs and, in response, extracts host data from host application screens. The extracted host data can then be presented to the user for interaction. Developing the macro-based customization is simple. Screen recognition becomes easy and efficient because a user only needs to distinguish a few host screens. Additionally, it is relatively easy to construct a fully web-like host application using the macro-based customization method since the web page construction is based on extracted data instead of host application screens. However, the problem with current macro-based host application customization techniques is that the user has to record a macro that covers every screen of the host application. Consequently, it is difficult for a user to customize part of the host application but provide the whole host application to a customer.
Furthermore, there are hybrid approaches utilizing the screen by screen approach and the macro-based approach. Some hybrid approaches allow users to skip intermediate screens. However, these hybrid approaches do not change the screen-by-screen customization requirement and provide little support to combine data from multiple screens. Other hybrid approaches may use a macro-based host application customization but they do not provide for automatic switching between screen-by-screen customization and macro-based customization or displaying individual customized screens. Therefore, it would be advantageous to have an improved method for partial customization of host applications using macro-based and individual screen customization techniques.